#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <string.h>



int main()
{
  printf("stdin->fd:%d\n",stdin->_fileno);
  printf("stdout->fd:%d\n",stdout->_fileno);
  printf("stderr->fd:%d\n",stderr->_fileno);


  return 0;
}




//int main()
//{
//  // 系统调用的方式打开文件  
//  int fd = open("log.txt", O_WRONLY | O_CREAT | O_APPEND, 0666); // O_WRONLY 和 O_CREAT 是宏
//  if(fd < 0)
//  {
//    perror("open");
//    return 1;
//  }
//
//  const char *message = "Hello Linux file!\n";
//  // const char *message = "HHHHHAAAA\n";
//  write(fd, message, strlen(message));
//
//  close(fd);
//
//  return 0;
//}
//







// 标记位传参

//#define ONE 1
//#define TWO (1<<1)   // 2 0000 0001
//#define THREE (1<<2) // 4 0000 0010
//#define FOUR (1<<3)  // 8 0000 1000
//
//void print(int flag)
//{
//  if(flag & ONE)
//    printf("one\n");  //printf可替换成其他功能，这样就可以实现向一个函数传递多个标记位
//  if(flag & TWO)
//    printf("two\n");
//  if(flag & THREE)
//    printf("three\n");
//  if(flag & FOUR)
//    printf("four\n");
//}





//int main()
//{
//  print(ONE);
//  printf("\n");
//
//  print(TWO);
//  printf("\n");
// 
//  print(ONE | TWO | THREE);
//  printf("\n");
//
//  print(ONE | TWO | THREE | FOUR);
//  printf("\n");
//
//  return 0;
//}




